package com.vca.service.service;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.vca.common.request.PageParamRequest;
import com.vca.common.request.VhallSetCallbackRequest;
import com.vca.common.request.VhallSetKeyRequest;
import com.vca.common.response.CourseAdminListResponse;
import com.vca.common.response.VhallAdminListResponse;
import com.vca.common.response.VhallGetCallbackResponse;
import com.vca.common.response.VhallGetKeyResponse;
import com.vca.common.result.CommonResult;
import com.vca.common.vo.MyRecord;
import org.springframework.web.bind.annotation.ModelAttribute;

import java.util.List;
import java.util.Map;

/**
 * @author Li
 * @program VCA_Mini_Program
 * @description 微吼服务层
 * @classname VhallService
 * @since 2022/12/19 13:41:00
 **/
public interface VhallService {


    /**
     * @description 获取微吼直播列表
     * @author Li
     * @date 2022/12/19 13:44
     * @return java.lang.Object
     */
    PageInfo<VhallAdminListResponse> list(String status, PageParamRequest pageParamRequest);

    /**
     * @description 微吼直播状态回调
     * @param json
     * @author Li
     * @date 2022/12/27 15:32
     * @return boolean
     */
    boolean callBack(String json);

    /**
     * @description 设置微吼回调地址
     * @param request
     * @author Li
     * @date 2022/12/28 9:55
     * @return boolean
     */
    boolean setCallback(VhallSetCallbackRequest request);

    /**
     * @description 查询回调事件
     * @author Li
     * @date 2022/12/28 10:21
     * @return com.vca.common.response.VhallGetCallbackResponse
     */
    VhallGetCallbackResponse getCallback();

    /**
     * @description 设置VhallKey值验证
     * @methodName setKey
     * @param request
     * @author Li
     * @date 2022/12/29 9:20
     * @return java.lang.String
     */
    String setKey(VhallSetKeyRequest request);

    /**
     * @description 生成Key值
     * @methodName generateKey
     * @param talkId
     * @author Li
     * @date 2022/12/29 9:45
     * @return java.lang.String
     */
    String generateKey(Long talkId);

    /**
     * @description k值校验
     * @methodName check
     * @param params
     * @author Li
     * @date 2022/12/29 11:07
     * @return java.lang.String
     */
    String check(Map<String, Object> params);

    /**
     * @description 获取VhallKey值参数
     * @methodName getKey
     * @author Li
     * @date 2022/12/30 11:25
     * @return com.vca.common.response.VhallGetKeyResponse
     */
    VhallGetKeyResponse getKey();
}
